<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="utf-8">
  
  <title>JAVA</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  
  
  
  
  <meta property="og:type" content="website">
<meta property="og:title" content="JAVA">
<meta property="og:url" content="https://jameslin23.gitee.io/page/3/index.html">
<meta property="og:site_name" content="JAVA">
<meta property="og:locale" content="zh-CN">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="JAVA">
  
    <link rel="alternate" href="/atom.xml" title="JAVA" type="application/atom+xml">
  

  

  <link rel="icon" href="/css/images/mylogo.jpg">
  <link rel="apple-touch-icon" href="/css/images/mylogo.jpg">
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link href="https://fonts.googleapis.com/css?family=Open+Sans|Montserrat:700" rel="stylesheet" type="text/css">
  <link href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <style type="text/css">
    @font-face{font-family:futura-pt; src:url("/css/fonts/FuturaPTBold.otf") format("woff");font-weight:500;font-style:normal;}
    @font-face{font-family:futura-pt-light; src:url("/css/fonts/FuturaPTBook.otf") format("woff");font-weight:lighter;font-style:normal;}
    @font-face{font-family:futura-pt-italic; src:url("/css/fonts/FuturaPTBookOblique.otf") format("woff");font-weight:400;font-style:italic;}
}

  </style>
  <link rel="stylesheet" href="/css/style.css">

  <script src="/js/jquery-3.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>

  <!-- Bootstrap core CSS -->
  <link rel="stylesheet" href="/css/bootstrap.css">

  
    <link rel="stylesheet" href="/css/home.css">
  

  

  

  
  
  
    <link rel="stylesheet" href="/css/vdonate.css">
  

</head>
</html>


  <body>


  
    <header id="header">

	<!-- 背景图模式 -->
	

    
      <div id="intrologo" class="intro-logo" style="background-position:center; background-repeat:no-repeat; background-image: url(); background-size: auto 100%;">

      <!-- Support rolling -->  
        
        <section class="awSlider">
          <div class="carousel slide carousel-fade " data-ride="carousel">

            <!-- Wrapper for slides -->
            <div class="carousel-inner">
               
                  
                    <div class="item active">
                  
                    <img id="carousel-img0" src="/css/images/pose.jpg">
                  </div>

                  <!-- 自适应大图 -->
                  <script>
                      var img0 = new Image();
                      var imageTag0 = document.getElementById("carousel-img0");
                      img0.src = imageTag0.src;
                      img0.onload=function(){
                        if (img0.width / img0.height <= document.body.clientWidth / document.body.clientHeight) {
                          imageTag0.style.width = document.body.clientWidth + "px";
                        } else {
                          imageTag0.style.height = document.body.clientHeight + "px";
                          imageTag0.style.marginLeft = -(document.body.clientHeight * img0.width / img0.height - document.body.clientWidth) / 2 + "px";
                        }
                      };
                  </script>
                
            </div>

            <!-- Controls -->
            <a class="left carousel-control" href=".carousel" role="button" data-slide="prev">
              <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
              <span class="sr-only">Geri</span>
            </a>
            <a class="right carousel-control" href=".carousel" role="button" data-slide="next">
              <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
              <span class="sr-only">İleri</span>
            </a>
          </div>
        </section>
        <script>
          $('section.awSlider .carousel').carousel({
              pause: '',
              interval: 5000
          });
          var startImage = $('section.awSlider .item.active > img').attr('src');
          $('section.awSlider .carousel').on('slid.bs.carousel', function () {
              var bscn = $(this).find('.item.active > img').attr('src');
              $('section.awSlider > img').attr('src', bscn);
          });
        </script>
      

    
 


    <canvas width="100%" height="100%"></canvas>
    <script>
      var c = document.getElementsByTagName('canvas')[0],
          x = c.getContext('2d'),
          w = window.innerWidth,
          h = window.innerHeight,
          pr = window.devicePixelRatio || 1,
          f = 90,
          q,
          m = Math,
          r = 0,
          u = m.PI*2,
          v = m.cos,
          z = m.random
      c.width = w*pr
      c.height = h*pr
      x.scale(pr, pr)
      x.globalAlpha = 0.6

      <!-- 折线Polyline背景 -->
      
    </script>
    

    
      <div id="homelogo" class="homelogo" style="background: rgba(255,255,255,1);"> 
    

        
          <div class="homelogoback" style="border: 1px solid #404040;">
            <h1><a href="#content" id="logo">JAVA</a></h1>
            <h3></h3>
            <h5>LeBron Tao</h5>
            <!-- <p><a href="https://github.com/iTimeTraveler" target="_blank">Github</a></p> -->
          </div>
        
    
    </div>
  </div>

  <!-- 自适应主页背景大图 -->
  

 <!-- home_logo_image居中 -->
 
    <script>
        var homelogodiv = document.getElementById("homelogo");
        if (document.all.homelogo.offsetWidth > document.body.clientWidth) {
          homelogodiv.style.width = document.body.clientWidth + "px";
          homelogodiv.style.marginLeft = document.body.clientWidth * -0.5 + "px";
        } else {
          homelogodiv.style.width = homelogodiv.clientWidth  + "px";
          homelogodiv.style.marginLeft = (homelogodiv.clientWidth)  * -0.5 + "px";
        }
    </script>
  

  <div class="intro-navigate">
      <p class="navigater-list">
        
          <a id="beautifont" class="main-nav-link" href="/">首页</a>
        
          <a id="beautifont" class="main-nav-link" href="/archives">归档</a>
        
          <a id="beautifont" class="main-nav-link" href="/categories">分类</a>
        
          <a id="beautifont" class="main-nav-link" href="/tags">标签</a>
        
          <a id="beautifont" class="main-nav-link" href="/about">关于</a>
        
      </p>
  </div>

</header>
  
  <div id="container">
    <div id="wrap">
      
            
      <div id="content" class="outer">
        
          <section id="main" style="float:none;">
  
    <article id="post-JVM篇之复制算法" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/30/JVM篇之复制算法/">JVM篇之复制算法</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/30/JVM篇之复制算法/" class="article-date">
	  <time datetime="2020-12-30T10:20:19.000Z" itemprop="datePublished">2020-12-30</time>
	</a>

      
    <a class="article-category-link" href="/categories/JVM/">JVM</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          复制算法背景为了解决标记-清除算法在垃圾收集效率方面的缺陷，M.L.Minsky于1963年发表了著名的论文，“使用双存储区的Lisp语言垃圾收集器CA Lisp Garbage Collector Algorithm Using Serial Secondary Storage”。M.L.Minsky在论文中描述的算法被人们称为复制（Copying）算法，它也被M.L.Minsky本人成功的引入到了Lisp语言的一个实现版本中。
核心思想将活着的内存空间分为两块，每次只使用其中一块，在垃...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/30/JVM篇之复制算法/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-JVM篇之标记清除算法" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/30/JVM篇之标记清除算法/">JVM篇之标记清除算法</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/30/JVM篇之标记清除算法/" class="article-date">
	  <time datetime="2020-12-30T09:19:13.000Z" itemprop="datePublished">2020-12-30</time>
	</a>

      
    <a class="article-category-link" href="/categories/JVM/">JVM</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          标记清除算法背景标记-清除算法（Mark-Sweep）是一种非常基础和常见的垃圾收集算法，该算法被J.McCarthy等人在1960年提出并应用于Lisp语言。
执行过程当堆中的有效内存空间（available memory）被耗尽的时候，就会停止整个程序（也被称为Stop The World），然后进行两项工作，第一项是标记，第二项则是清除。

标记：从引用根节点开始遍历，标记所有被引用对象。一般是在对象Header中记录为可达对象。
清除：对堆内内存从头到尾进行线性的遍历，如果发现某个...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/30/JVM篇之标记清除算法/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-Synchronized分析篇" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/28/Synchronized分析篇/">Synchronized分析篇</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/28/Synchronized分析篇/" class="article-date">
	  <time datetime="2020-12-28T12:24:22.000Z" itemprop="datePublished">2020-12-28</time>
	</a>

      
    <a class="article-category-link" href="/categories/并发编程/">并发编程</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          Synchronized
非静态方法锁的是当前对象（this）
静态方法锁的类对象Test.class
代码块锁的是自定义的Object对象

示例代码
123456789101112131415161718192021public class Test &#123;    //对象    Object object=new Object();    //共享变量    private static int num;    //静态方法    public synchronized sta...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/28/Synchronized分析篇/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-AQS源码分析" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/28/AQS源码分析/">AQS源码分析</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/28/AQS源码分析/" class="article-date">
	  <time datetime="2020-12-28T08:26:22.000Z" itemprop="datePublished">2020-12-28</time>
	</a>

      
    <a class="article-category-link" href="/categories/并发编程/">并发编程</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          AQS简单介绍AQS定义两种资源：Exclusive(独占，只有一个线程能执行，如果ReentranLock) 和 Share(共享，多个线程可同时执行，如Semaphore/CountDownLatch)。
不同的自定义同步器争用共享的方式也不同。自定义同步器实现时只需要实现共享资源state的获取和释放即可。至于具体线程等待队列的维护（如获取资源失败入队/唤醒出队等），AQS已经在顶层实现好了，自定义同步器实现主要实现以下几种方法：

isHeldExclusively()：该线程是否...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/28/AQS源码分析/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-AQS原理分析" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/27/AQS原理分析/">AQS原理分析</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/27/AQS原理分析/" class="article-date">
	  <time datetime="2020-12-27T07:17:02.000Z" itemprop="datePublished">2020-12-27</time>
	</a>

      
    <a class="article-category-link" href="/categories/并发编程/">并发编程</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          AQS概述AQS(Abstract Queued Synchronizer) 抽象队列同步器，定义了一套多线程访问共享资源的同步框架，许多同步类实现都依赖与它，常用ReentrantLock/Semaphoe/CountDownLatch
由一个资源状态int state和同步器（FIFO双向阻塞队列组成）

同步器同步器依赖内部的同步队列（FIFO）来完成同步状态的管理，当前线程获取同步状态失败时，同步器会使用CAS将当前线程以及等待状态等信息构造成一个节点Node并将其加入同步队列尾部...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/27/AQS原理分析/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-ArrayList源码分析" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/26/ArrayList源码分析/">ArrayList源码分析</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/26/ArrayList源码分析/" class="article-date">
	  <time datetime="2020-12-26T06:07:16.000Z" itemprop="datePublished">2020-12-26</time>
	</a>

      
    <a class="article-category-link" href="/categories/java基础/">java基础</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          属性123456789101112131415161718192021222324252627282930313233343536// 序列化版本UIDprivate static final long        serialVersionUID = 8683452581122892189L;/** * 默认的初始容量 */private static final int        DEFAULT_CAPACITY = 10;/** * 用于空实例的共享空数组实例 * new Ar...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/26/ArrayList源码分析/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-java基础面试篇" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/26/java基础面试篇/">java基础面试篇</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/26/java基础面试篇/" class="article-date">
	  <time datetime="2020-12-26T01:31:02.000Z" itemprop="datePublished">2020-12-26</time>
	</a>

      
    <a class="article-category-link" href="/categories/面试专题/">面试专题</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          
        </p>
        <p class="article-more-link">
          <a href="/2020/12/26/java基础面试篇/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-gateway" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/25/gateway/">gateway</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/25/gateway/" class="article-date">
	  <time datetime="2020-12-25T07:54:18.000Z" itemprop="datePublished">2020-12-25</time>
	</a>

      
    <a class="article-category-link" href="/categories/springCloud/">springCloud</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          
        </p>
        <p class="article-more-link">
          <a href="/2020/12/25/gateway/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-Hystrix" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/25/Hystrix/">Hystrix</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/25/Hystrix/" class="article-date">
	  <time datetime="2020-12-25T02:43:36.000Z" itemprop="datePublished">2020-12-25</time>
	</a>

      
    <a class="article-category-link" href="/categories/springCloud/">springCloud</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          概述Hystrix是一个用于分布式系统的延迟和容错的开源库，在分布式系统里，许多依赖不可避免的会调用失败，比如超时，异常等。Hystrix能够保证在一个依赖出问题的情况下，不会导致整体服务失败，避免级联故障。以提高分布式系统的弹性。
“断路器”本身是在一种开关装置，当某个服务单元发生故障之后，通过断路器的故障监控(类似熔断保险丝)，像调用方返回一个符合预期的，可处理的备选响应（FallBack）,而不是长时间的等待或者抛出调用方无法处理异常。避免服务调用方的线程不会被长时间，不必要的占用，...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/25/Hystrix/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-OpenFeign" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/25/OpenFeign/">OpenFeign</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/25/OpenFeign/" class="article-date">
	  <time datetime="2020-12-25T01:42:40.000Z" itemprop="datePublished">2020-12-25</time>
	</a>

      
    <a class="article-category-link" href="/categories/springCloud/">springCloud</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          概述FeignFeign是一个声明式的web服务客户端，让编写web服务客户端变得非常容易，只需要创建一个接口并在接口上添加注解即可
Feign使得Java Http客户端变得更容易。Ribbon+RestTemplate时，利用RestTemplate对http请求的封装处理，形成了一套模板化的调用方法。但实际开发的调用可能不止一处。往往一个接口会被多处调用，所以通常都会针对每个微服务自行封装一些客户端类来包装。Feign在基础上做了进一步封装。由他来帮助我们定义和实现依赖服务接口的定义...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/25/OpenFeign/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  


  <nav id="page-nav">
    
    <a class="extend prev" rel="prev" href="/page/2/">&laquo; 上一页</a><a class="page-number" href="/">1</a><a class="page-number" href="/page/2/">2</a><span class="page-number current">3</span><a class="page-number" href="/page/4/">4</a><a class="page-number" href="/page/5/">5</a><a class="page-number" href="/page/6/">6</a><a class="extend next" rel="next" href="/page/4/">下一页 &raquo;</a>
  </nav>

</section>
        
      </div>
      
        <div align="center" style="margin-top: 30px;"><hr class="hr" style="margin:0px; height:3px;"></div>
      
      <footer id="footer">
  

  <div class="container">
      	<div class="row">
	      <p> Powered by <a href="http://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/iTimeTraveler/hexo-theme-hiker" target="_blank">Hexo-theme-hiker</a> </p>
	      <p id="copyRightEn">Copyright &copy; 2013 - 2021 JAVA All Rights Reserved.</p>
	      
	      
    		<p class="busuanzi_uv">
				访客数 : <span id="busuanzi_value_site_uv"></span> |  
				访问量 : <span id="busuanzi_value_site_pv"></span>
		    </p>
  		   
		</div>

		
  </div>
</footer>


<!-- min height -->

<script>
    var wrapdiv = document.getElementById("wrap");
    var contentdiv = document.getElementById("content");
    var allheader = document.getElementById("allheader");

    wrapdiv.style.minHeight = document.body.offsetHeight + "px";
    if (allheader != null) {
      contentdiv.style.minHeight = document.body.offsetHeight - allheader.offsetHeight - document.getElementById("footer").offsetHeight + "px";
    } else {
      contentdiv.style.minHeight = document.body.offsetHeight - document.getElementById("footer").offsetHeight + "px";
    }
</script>
    </div>
    <!-- <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">Home</a>
  
    <a href="/archives" class="mobile-nav-link">Archives</a>
  
    <a href="/categories" class="mobile-nav-link">Categories</a>
  
    <a href="/tags" class="mobile-nav-link">Tags</a>
  
    <a href="/about" class="mobile-nav-link">About</a>
  
</nav> -->
    

<!-- mathjax config similar to math.stackexchange -->

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    }
  });
</script>

<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
      tex2jax: {
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
      }
    });
</script>

<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/scripts.js"></script>


  <script src="/js/home.js"></script>










	<div style="display: none;">
    <script src="https://s95.cnzz.com/z_stat.php?id=1260716016&web_id=1260716016" language="JavaScript"></script>
  </div>



	<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js">
	</script>






  </div>

  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h2 class="modal-title" id="myModalLabel">设置</h2>
      </div>
      <hr style="margin-top:0px; margin-bottom:0px; width:80%; border-top: 3px solid #000;">
      <hr style="margin-top:2px; margin-bottom:0px; width:80%; border-top: 1px solid #000;">


      <div class="modal-body">
          <div style="margin:6px;">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" onclick="javascript:setFontSize();" aria-expanded="true" aria-controls="collapseOne">
              正文字号大小
            </a>
          </div>
          <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
          <div class="panel-body">
            您已调整页面字体大小
          </div>
        </div>
      


          <div style="margin:6px;">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" onclick="javascript:setBackground();" aria-expanded="true" aria-controls="collapseTwo">
              夜间护眼模式
            </a>
        </div>
          <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
          <div class="panel-body">
            夜间模式已经开启，再次单击按钮即可关闭 
          </div>
        </div>

        <div>
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关 于&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
        </div>
         <div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
          <div class="panel-body">
            JAVA
          </div>
          <div class="panel-body">
            Copyright © 2021 LeBron Tao All Rights Reserved.
          </div>
        </div>
      </div>


      <hr style="margin-top:0px; margin-bottom:0px; width:80%; border-top: 1px solid #000;">
      <hr style="margin-top:2px; margin-bottom:0px; width:80%; border-top: 3px solid #000;">
      <div class="modal-footer">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
      </div>
    </div>
  </div>
</div>
  
  <a id="rocket" href="#top" class=""></a>
  <script type="text/javascript" src="/js/totop.js?v=1.0.0" async=""></script>
  
</body>
</html>